#include <bits/stdc++.h>
#define mp make_pair
#define inf 0x3f3f3f3f
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define lowbit(i) (i&(-i))
//#define lx (x<<1)
//#define rx (x<<1|1)
//#define mid (left+right>>1)
using namespace std;
typedef long long ll;
const int N=5e4+5+26*26;
vector<pair<int,int>>e[N];
int d[N],a[N];
struct edge{
int ans,x,y;
}b[N];
void dij(int i){
d[i]=0;
deque<int>q;
q.push_front(i);
while(!q.empty()){
int x=q.front();q.pop_front();
for(auto r:e[x]){
int u=r.first,v=r.second;
if(d[u]>d[x]+v){
d[u]=d[x]+v;
if(v){
q.push_back(u);
}else q.push_front(u);
}
}
}
}
void solve(){
string s;
cin>>s;
int n=s.length();
for(int i=0;i<n;i++){
if(i!=n-1){
int j=n+(s[i]-'a')*26+s[i+1]-'a';
e[j].push_back(mp(i,1));
e[i].push_back(mp(j,0));
}
if(i!=n-1) e[i].push_back(mp(i+1,1));
if(i!=0) e[i].push_back(mp(i-1,1));
}
int m;
cin>>m;
for(int i=1;i<=m;i++){
int x,y;
cin>>x>>y;
x--;y--;
b[i]=edge{abs(x-y),x,y};
}
for(int i=n;i<n+26*26;i++){
memset(d,0x3f,sizeof(d));
dij(i);
for(int j=1;j<=m;j++){
b[j].ans=min(b[j].ans,d[b[j].x]+d[b[j].y]-1);
}
}
for(int i=1;i<=m;i++){
cout<<b[i].ans<<endl;
}
}
int main(){
IOS;
int t;
t=1;
while(t--){
solve();
}
return 0;
}
561. Array Partition I | 1374. Generate a String With Characters That Have Odd Counts |
1822. Sign of the Product of an Array | 1464. Maximum Product of Two Elements in an Array |
1323. Maximum 69 Number | 832. Flipping an Image |
1295. Find Numbers with Even Number of Digits | 1704. Determine if String Halves Are Alike |
1732. Find the Highest Altitude | 709. To Lower Case |
1688. Count of Matches in Tournament | 1684. Count the Number of Consistent Strings |
1588. Sum of All Odd Length Subarrays | 1662. Check If Two String Arrays are Equivalent |
1832. Check if the Sentence Is Pangram | 1678. Goal Parser Interpretation |
1389. Create Target Array in the Given Order | 1313. Decompress Run-Length Encoded List |
1281. Subtract the Product and Sum of Digits of an Integer | 1342. Number of Steps to Reduce a Number to Zero |
1528. Shuffle String | 1365. How Many Numbers Are Smaller Than the Current Number |
771. Jewels and Stones | 1512. Number of Good Pairs |
672. Richest Customer Wealth | 1470. Shuffle the Array |
1431. Kids With the Greatest Number of Candies | 1480. Running Sum of 1d Array |
682. Baseball Game | 496. Next Greater Element I |